home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / falcon / programm.ing / nt_dsp1.lzh / NT_DSP1.MSA / MATRIX / MATMUL1.ASM next >
Assembly Source File  |  1989-01-24  |  2KB  |  58 lines

  1. ;
  2. ; This program originally available on the Motorola DSP bulletin board.
  3. ; It is provided under a DISCLAMER OF WARRANTY available from
  4. ; Motorola DSP Operation, 6501 Wm. Cannon Drive W., Austin, Tx., 78735.
  5. ; [1x3][3x3]=[1x3] Matrix Multiplication       
  6. ; Last Update 04 Feb 87   Version 1.0
  7. ;
  8.         opt     cex
  9.         page    132,66,0,0
  10. ;
  11. ;       matrix multiply
  12. ;
  13. ;
  14.         org     x:0
  15. ;
  16. mat_a
  17.         dc        .4                    ;a(1,1)
  18.         dc        .3                    ;a(1,2)
  19.         dc        -.6                   ;a(1,3)
  20.  
  21.         org     y:0
  22. mat_b
  23.         dc        -.4                   ;b(1,1)
  24.         dc        .5                    ;b(2,1)
  25.         dc        .6                    ;b(3,1)
  26.         dc        .35                   ;b(1,2)
  27.         dc       -.3                    ;b(2,2)
  28.         dc        -.35                  ;b(3,2)
  29.         dc       .15                    ;b(1,3)
  30.         dc       .4                     ;b(2,3)
  31.         dc       .45                    ;b(3,3)
  32.  
  33. mat_x   ds      3
  34. ;
  35. ;
  36.         org     p:$100
  37. matmul  move    #mat_a,r0       ;point to A matrix
  38.         move    #mat_b,r4       ;point to B matrix
  39.         move    #2,m0           ;mod 3
  40.         move    #mat_x,r1       ;output X matrix
  41. ;
  42.         move            x:(r0)+,x0  y:(r4)+,y0
  43.         mpy     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  44.         mac     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  45.         macr    x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  46.         move    a,y:(r1)+
  47.         mpy     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  48.         mac     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  49.         macr    x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  50.         move    a,y:(r1)+
  51.         mpy     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  52.         mac     x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  53.         macr    x0,y0,a  x:(r0)+,x0  y:(r4)+,y0
  54.         move    a,y:(r1)+
  55.         end
  56.